Apparatus And Method For Computer Code Adjustments In An Industrial Machine

ABSTRACT

A manufacturing action is performed on a first part or first component involved in a manufacturing process. The manufacturing action is directed by computer software that is stored in a memory and executed by a processor. The first part or first component is examined to determine results of the manufacturing action. Based upon the results, a structure of the computer software is selectively changed to optimize the results. Subsequently the manufacturing action is performed on a second part or second component. The manufacturing action is directed by the computer software having the changed structure.

BACKGROUND OF THE INVENTION Field of the Invention

The subject matter disclosed herein generally relates to industrialmachines and adjusting the manufacturing processes employed by thesemachines.

Brief Description of the Related Art

Various types of industrial machines are used to perform variousmanufacturing operations and tasks. For instance, some machines are usedto create and finish parts associated with wind turbines. Other machinesare used to create mechanical parts or components utilized by vehicles.Still other machines are used to produce electrical parts (e.g.,resistors, capacitors, and inductors to mention a few examples).Typically, industrial machines are controlled at least in part bycomputer code (or a computer program) that is executed by a processorthat is located at the machine.

Sometimes the results of the manufacturing operation are not optimal.For example, the manufacturing operation may take too much time, or theresultant product may have dimensions that vary from a requiredspecification. These problems affect the efficiency of the entiremanufacturing facility and increase customer dissatisfaction with theproduct created by the process.

Previous attempts to address these problems have not been made, butunfortunately, have not been successful.

BRIEF DESCRIPTION OF THE INVENTION

The present invention is directed to improving manufacturing processes,including manufacturing processes of complex parts that may requiresignificant time to manufacture, by receiving, analyzing, and adjustingcomputerized manufacturing process instructions during the course ofmanufacture. In some embodiments, the invention described herein mayanalyze the adjusted inputs and expected results of a manufacturingprocess in assessing the need for rework repair or subsequentmanufacturing processes. The invention herein may optionally implementedusing a computerized industrial internet of things analytics platformthat may be deployed at the location of the manufacturing process, atthe manufacturing facility premise or in the cloud.

In manufacturing processes (e.g., manufacturing a wind turbine ring),the computer program or code used in industrial machines (that executesthe steps in a manufacturing process) is selectively changed. Withvarious embodiments of the present invention, the results of performingmanufacturing steps on a product are tracked. Then, adjustments are madeto the code (e.g., new code may be injected into the original code) andthe results of the adjustments may be further tracked. Mappings fromexpected manufacturing results to the code responsible (or code changesneeded) for achieving these results may be utilized by these approaches.The results may be tracked over time in order to make future adjustmentsto the manufacturing code, avoid failures, improve efficiency, and toimprove estimation.

In many of these embodiments a manufacturing action is performed on afirst part or first component involved in a manufacturing process. Themanufacturing action is directed by computer software that is stored ina memory and executed by a processor. The first part or first componentis examined to determine results of the manufacturing action. Based uponthe results, the structure of the computer software is selectivelychanged to optimize the results. Subsequently the manufacturing actionis performed on a second part or second component. The manufacturingaction is directed by the computer software having the changedstructure.

In some aspects and when the results are acceptable, the structure ofthe software is re-set to its original structure. In some examples,changing of the structure is accomplished by changing a computervariable in the computer software. In other examples, changing thestructure is accomplished by adding computer code to the existingcomputer software. In yet other examples, changing the structure isaccomplished by deleting computer code from the existing computersoftware.

The manufacturing action may be a wide variety of actions. For example,the action may be grinding, milling, measuring, and cutting. Otherexamples are possible.

In other aspects, recommendations for adjustments to the computersoftware are determined and the recommendations are displayed to a user.In other examples, user input as to whether to accept the recommendationis accepted at a user interface. In still other examples, the resultsare recorded for future usage.

In other embodiments, a system includes an industrial machine and ananalyzer circuit. The industrial machine is configured to perform amanufacturing action on a first part or a first component. The machineincludes a controller executing computer software that directs themanufacturing action.

The analyzer circuit is configured to examine the first part or firstcomponent to determine results of the manufacturing action. The analyzercircuit is further configured to, based upon the results, selectivelychange a structure of the computer software. The machine is configuredto subsequently perform the manufacturing action on a second part orsecond component. The manufacturing action is directed by the computersoftware that has the changed structure.

In some aspects, the machine is configured to, when the results areacceptable, re-set the structure of the software to its originalstructure. In some examples, the structure is changed by making amodification to a computer variable in the computer software. In otherexamples, the structure is changed by adding computer code to thecomputer software. In still other aspects the structure is changed bydeleting computer code from the computer software.

In other examples, the machine determines potential adjustmentrecommendations to the computer software and displays therecommendations to a user. In other examples, a user interface iscoupled to the machine, and the user interface is configured to acceptuser input as to whether to accept the recommendation. In aspects, theanalyzer circuit is configured to record the results for future usage.

BRIEF DESCRIPTION OF THE DRAWINGS

For a more complete understanding of the disclosure, reference should bemade to the following detailed description and accompanying drawingswherein:

FIG. 1 comprises a block diagram of a system that adjusts the softwarestructure of an industrial machine according to various embodiments ofthe present invention;

FIG. 2 comprises a flowchart of an approach that adjusts the softwarestructure of an industrial machine according to various embodiments ofthe present invention;

FIG. 3 comprises a diagram of one example of a user screen rendered at auser interface according to various embodiments of the presentinvention;

FIG. 4 comprises a flowchart of one approach for determining a change tocomputer software of an industrial machine according to variousembodiments of the present invention;

FIG. 5 comprises a flowchart of one approach for determining arecommendation to a user for a potential software change according tovarious embodiments of the present invention;

FIG. 6A and FIG. 6B comprise drawings of computer code showing oneexample of how the code is changed according to various embodiments ofthe present invention;

FIG. 7A and FIG. 7B comprise drawings of computer code showing anotherexample of how the code is changed according to various embodiments ofthe present invention;

FIG. 8 comprises a drawing of one example of an Asset ManagementPlatform (AMP) according to various embodiments of the presentinvention.

Skilled artisans will appreciate that elements in the figures areillustrated for simplicity and clarity. It will further be appreciatedthat certain actions and/or steps may be described or depicted in aparticular order of occurrence while those skilled in the art willunderstand that such specificity with respect to sequence is notactually required. It will also be understood that the terms andexpressions used herein have the ordinary meaning as is accorded to suchterms and expressions with respect to their corresponding respectiveareas of inquiry and study except where specific meanings have otherwisebeen set forth herein.

DETAILED DESCRIPTION OF THE INVENTION

The present approaches advantageously improve the results ofmanufacturing processes by selectively changing the computer code thatcontrols these processes. In other words, the present approaches achievea physical transformation of the computer code from a first structure,to a second structure. In some examples, the second structure is changedback to the first structure.

As used herein, “computer code” or “software” means the physicalrepresentation of a computer program on physical media (e.g., differentbit patterns stored at a storage media such as a disc drive orelectronic memory). The computer code may be (or represent) variouscomputer instructions, data structures, variables, or any other softwareconstruct used in any type of computer program.

Referring now to FIG. 1, one example of a system that changes ortransforms the structure of computer code used in a manufacturingprocess is described. The system includes a machine 102 (including acontroller 104 with a memory 106 that stores computer program orsoftware 108), a user interface 110, a product 112, and analyzer circuit114 (including a second controller 116).

The machine 102 is any type of industrial machine that performs one ormore operations on the product 112. For example, the industrial machinemay be a lathe, a grinding machine, or a saw to mention a few examples.Other examples are possible.

The controller 104 may be any type of processing device such as amicroprocessor or the like. The memory 106 may be any type of memory(such as a programmable read only memory, or a random access memory, tomention two examples). The memory 106 is shown as being incorporatedwith the controller 104, but in other examples may be a separate device.

The computer program or software 108 is any combination of softwareelements that are used to direct the operation of the machine 102. Inaspects, the software 108 may include subroutines, procedures, or othersoftware constructs that control the operation of the machine 102. Thesoftware 108 directs the machine 102 to execute manufacturing operationson the product 112. The product 112 may be any type of product that isproduced, created, altered, adjusted, or influenced by the machine 102.For example, the product 112 may be a metallic ring (e.g., used on awind turbine), an electronic component, a circuit, or any type ofproduct produced in a manufacturing process.

The user interface 110 may be any type of user interface device (andinclude a graphical user interface) that accepts user input that in someway controls the machine 102. The user interface 110 may include adisplay that renders information to a user. It will be appreciated thatin some examples the user interface 110 need not be used. In otherwords, the analyzer circuit 114 may make software adjustments withoutany manual intervention or input from a user. The user interface 110may, in one example, display recommendations from the analyzer circuit108 on a screen and receive input from a user that indicates whether theuser wishes to accept the recommendations. The user input may bereceived at the interface 110 (e.g., from a touchscreen or keyboard tomention two examples of input devices).

The analyzer circuit 114 is any combination of hardware or software,which analyzes results of the manufacturing process on the product 112.The analyzer circuit may include one or more sensors 122 that senseaspects associated with the product 112 that has completed themanufacturing process. The sensors 122 may be a device that sensesdimensions, strengths, or other characteristics of a product 112 thathas finished the manufacturing process. In different examples, a humanmay manually examine the product 112 and determine whether the productmeets predetermined criteria. The results of this analysis may beentered into the analyzer circuit 114.

The second controller 116 controls processing operations at the analyzercircuit 114. The controller 116 may analyze the inputs and determine anadjustment to the computer software 108 that brings aspects orcharacteristics of the product 112 to be within predetermined criteria.

In one example, the analyzer circuit 114 has sensors 122 that measurethe time to complete a product. When the measured time is too slow, thecontroller 116 determines that the speed of the machine 102 must beincreased. The controller 116 determines that speed is controlled by avariable within the software 108 and this variable is changed by sendingcontrol signal 124 to the machine 102. Control signal 124 may includethe identification information (e.g., the variable name) and a value(e.g., the new value of the variable).

The machine 102 receives the control signal 124 and the controller 104accesses the software 108 stored in the memory 106. The controller 104physically changes the value of the variable within the software 108.The software 108 is then executed on a second product and the process isrepeated until the product is produced within the required time frame.In other aspects, the software 108 may be modified to return to itsoriginal state (e.g., the variable may be re-written to have itsoriginal value) after the product 112 is produced within thepre-selected criteria.

It will be appreciated that the physical structure of the software 108is changed, modified, and/or transformed using the approaches describedherein. That is, the actual physical structure of the code 108 as storedin the memory 106 is changed. To take one example, the underlying bitpattern of the digital bits that represent the code 108 as stored in thememory 106 is changed or transformed.

It will be appreciated that there are various changes that can be madeto the software 108. In one sample, a variable value is changed. Inanother example, the value of a constant is changed. In still anotherexample, a second section or segment of computer code (e.g., asubroutine) is added to (injected in) the software 108. In yet otherexamples, a section of code is deleted (e.g., a subroutine and calls tothat subroutine are removed) from the software 108.

In another example of the operation of the system of FIG. 1, amanufacturing action 126 is performed on a first part or first component112 that is involved in a manufacturing process. The manufacturingaction 126 is directed by the computer software 108 that is stored inthe memory 106 and executed by a processor or controller 104. Theanalyzer circuit 114 examines the first part or first component 112 todetermine results of the manufacturing action 126. Based upon theresults, the structure of the computer software 108 is physicallychanged to optimize the results. Subsequently, the manufacturing action126 is performed on a second part or second component, and themanufacturing action 126 is then being directed by the computer software108 having the changed structure.

In other aspects, when the results are acceptable, the structure of thesoftware 108 is physically re-set and changed to its original structure.

The manufacturing action 126 may be a variety of actions such asgrinding, milling, measuring, and cutting. Other examples are possible.

In other aspects, the analyzer circuit 114 may determine recommendationsfor adjustments to the computer software and send a signal 128 to theuser interface 110 that displays the recommendations to a user. The userinterface 110 may accept user input as to whether to accept therecommendation in the signal 128. For example, the recommendation may befor an adjustment of the speed of the machine 108 and the user interface110 may show the recommendation (e.g., “increase the speed”) and acceptinput from a user that controls whether the speed is actually adjusted.In this example, the user ultimately controls whether the software 108is changed (while in other examples the software 108 may beautomatically (always) changed without any user input or permission).

Referring now to FIG. 2, one example of an approach for changingsoftware at an industrial machine is described. At step 202, amanufacturing process is performed on a product. At step 204, theresults of the manufacturing process are measured by analyzingparameters or aspects of the product that has completed the process. Forexample, selected dimensions of the product may be measured. In otherexamples, the time needed to complete the process is measured. In otherexamples, multiple parameters or aspects are measured.

At step 206, it is determined whether the measured parameters areoutside acceptable values. In one example, if there is a productspecification a determination is made as to whether these values areoutside this specification. For example, an acceptable time value tocomplete the process may be one minute and it may be determined whetherthe actual time required to complete the process exceeded one minute.

If the answer at step 206 is negative, at step 208 the software isre-set (changed) to its original structure (if the software has in factbeen changed) and execution continues with step 202 as has beendescribed above. If the answer at step 206 is affirmative, at step 210an appropriate adjustment to the software is made. For example, avariable or constant value may be changed, or subroutines or othersections of code may be added or deleted from the software. Executioncontinues at step 202.

Referring now to FIG. 3, one example of a display at a screen 300 on auser interface is described. The user interface 300 has a first field302 identifying a problem (“A determination has been made that theprocess is taking too long.”). A second field 304 indicates arecommendation (“We recommend adjusting the speed to 60 cycles/minute.”)A third field 306 guides the user (“Press ‘change’ icon to change therotational speed.”) In aspects, the scene is created by an analyzercircuit (analyzer circuit 114 of FIG. 1). When the user presses icon308, the software (e.g., software 108 of FIG. 1) is changed.

Referring now to FIG. 4, one example of an approach for determiningadjustments to industrial machine software is described. At step 402, ameasurement or observation is made. The measurement may be made by asensor, e.g., a speed sensor, a physical dimension measurement device,or a scale to mention a few examples. In some examples, the measurementor observation may be made by a human.

At step 404, it is determined whether the measurement or observation iswithin an acceptable range or value. For example, the measurement may becompared to a predetermined threshold. If the answer is affirmative,then execution ends.

If the answer at step 404 is negative, then determinations are made asto the adjustment to the computer code. In this example, a mapping iscreated between the amount of variance in the measurement value to anacceptable value, and the change to the code. In this example at step406, if the measured value differs from the acceptable value between afirst threshold and a second threshold, then a first software adjustmentis made. At step 408, and if the measured value differs is above thesecond value, then a second adjustment is made. For all otherdifferences, a third adjustment is made at step 410. The firstadjustment may involve setting a variable to a first value, while thesecond adjustment involves setting the variable a second value, and thethird adjustment involves setting the variable to a third value.

Referring now to FIG. 5, one example of an approach for determiningrecommendations is described. This may be made, for example, by theanalyzer circuit 114 of FIG. 1. At step 502, a determination has beenmade that a code adjustment is needed (for example, using the approachof FIG. 4) by an adjustment amount (for example, a speed needs to beincreased by a value). If the value is within a first range, at step 504a first recommendation is made (“Increase speed by X.”) If the value iswithin a second range, at step 506 another recommendation is made(“Increase speed by Y.”) For all other values, another recommendation ismade (“Increase speed by Z.”) at step 508.

At step 510, the recommendation may be sent to a set interface (e.g., acomputer screen) to present to a user. The recommendation may berendered in any appropriate form on a computer screen.

Referring now to FIGS. 6A and 6B, one example of changing the structureof existing computer code at an industrial machine is described. Thestructure may be changed according to the approaches described herein.FIG. 6A shows computer code 600 with a variable 602. The variable is setto a value of “10.” In FIG. 6B, the variable is physically changed to“20” (the structure of the code 600 is therefore changed).

Referring now to FIGS. 7A and 7B, another example of changing thestructure of existing computer code at an industrial machine isdescribed. The structure may be changed according to the approachesdescribed herein. In FIG. 7A, the code 700 includes a first subroutine702 and a second subroutine 704. In FIG. 7B, a third subroutine 706 isadded. Consequently, the structure of the code 700 is physicallychanged.

It will be understood that the examples of FIGS. 6A, 6B, 7A, and 7B areonly two examples of how the computer code may be structurally changedby utilizing the approaches described herein. It will also beappreciated that in some instances computer hardware may also beselectively changed (e.g., switching in and out a circuit or filter).Thus, the present approaches are not limited to software-only changesbut include all examples of hardware and software.

As mentioned, the approaches described herein may optionally implementedusing a computerized industrial internet of things analytics platformthat may be deployed at the location of the manufacturing process, atthe manufacturing facility premise or in the cloud.

While progress with industrial equipment automation has been made overthe last several decades, and assets have become ‘smarter,’ theintelligence of any individual asset pales in comparison to intelligencethat can be gained when multiple smart devices are connected together.Aggregating data collected from or about multiple assets can enableusers to improve business processes, for example by improvingeffectiveness of asset maintenance or improving operational performanceif appropriate industrial-specific data collection and modelingtechnology is developed and applied.

In an example, an industrial asset can be outfitted with one or moresensors configured to monitor respective ones of an asset's operationsor conditions. Data from the one or more sensors can be recorded ortransmitted to a cloud-based or other remote computing environment. Bybringing such data into a cloud-based computing environment, newsoftware applications informed by industrial process, tools and know-howcan be constructed, and new physics-based analytics specific to anindustrial environment can be created. Insights gained through analysisof such data can lead to enhanced asset designs, or to enhanced softwarealgorithms for operating the same or similar asset at its edge, that is,at the extremes of its expected or available operating conditions.

The systems and methods for managing industrial machines (also referredto assets herein) can include or can be a portion of an IndustrialInternet of Things (IMT). In an example, an IIoT connects industrialassets, such as turbines, jet engines, and locomotives, to the Internetor cloud, or to each other in some meaningful way. The systems andmethods described herein can include using a “cloud” or remote ordistributed computing resource or service. The cloud can be used toreceive, relay, transmit, store, analyze, or otherwise processinformation for or about one or more industrial assets. In an example, acloud computing system includes at least one processor circuit, at leastone database, and a plurality of users or assets that are in datacommunication with the cloud computing system. The cloud computingsystem can further include or can be coupled with one or more otherprocessor circuits or modules configured to perform a specific task,such as to perform tasks related to asset maintenance, analytics, datastorage, security, or some other function.

However, the integration of industrial assets with the remote computingresources to enable the IIoT often presents technical challengesseparate and distinct from the specific industry and from computernetworks, generally. A given industrial asset may need to be configuredwith novel interfaces and communication protocols to send and receivedata to and from distributed computing resources. Given industrialassets may have strict requirements for cost, weight, security,performance, signal interference, and the like such that enabling suchan interface is rarely as simple as combining the industrial asset witha general purpose computing device.

To address these problems and other problems resulting from theintersection of certain industrial fields and the IIoT, embodiments mayenable improved interfaces, techniques, protocols, and algorithms forfacilitating communication with and configuration of industrial assetsvia remote computing platforms and frameworks. Improvements in thisregard may relate to both improvements that address particularchallenges related to particular industrial assets (e.g., improvedaircraft engines, wind turbines, locomotives, medical imaging equipment)that address particular problems related to use of these industrialassets with these remote computing platforms and frameworks, and alsoimprovements that address challenges related to operation of theplatform itself to provide improved mechanisms for configuration,analytics, and remote management of industrial assets.

The Predix™ platform available from GE is a novel embodiment of suchAsset Management Platform (AMP) technology enabled by state of the artcutting edge tools and cloud computing techniques that enableincorporation of a manufacturer's asset knowledge with a set ofdevelopment tools and best practices that enables asset users to bridgegaps between software and operations to enhance capabilities, fosterinnovation, and ultimately provide economic value. Through the use ofsuch a system, a manufacturer of industrial assets can be uniquelysituated to leverage its understanding of industrial assets themselves,models of such assets, and industrial operations or applications of suchassets, to create new value for industrial customers through assetinsights.

FIG. 8 illustrates generally an example of portions of a first AMP 800.As further described herein, one or more portions of an AMP can residein an asset cloud computing system 820, in a local or sandboxedenvironment, or can be distributed across multiple locations or devices.An AMP can be configured to perform any one or more of data acquisition,data analysis, or data exchange with local or remote assets, or withother task-specific processing devices.

The first AMP 800 includes a first asset community 802 that iscommunicatively coupled with the asset cloud computing system 820. In anexample, a machine module 810 receives information from, or sensesinformation about, at least one asset member of the first assetcommunity 802, and configures the received information for exchange withthe asset cloud computing system 820. In an example, the machine module810 is coupled to the asset cloud computing system 820 or to anenterprise computing system 830 via a communication gateway 805.

In an example, the communication gateway 805 includes or uses a wired orwireless communication channel that extends at least from the machinemodule 810 to the asset cloud computing system 820. The asset cloudcomputing system 820 includes several layers. In an example, the assetcloud computing system 820 includes at least a data infrastructurelayer, a cloud foundry layer, and modules for providing variousfunctions. In the example of FIG. 8, the asset cloud computing system820 includes an asset module 821, an analytics module 822, a dataacquisition module 823, a data security module 824, and an operationsmodule 825. Each of the modules 821-825 includes or uses a dedicatedcircuit, or instructions for operating a general purpose processorcircuit, to perform the respective functions. In an example, the modules821-825 are communicatively coupled in the asset cloud computing system820 such that information from one module can be shared with another. Inan example, the modules 821-825 are co-located at a designateddatacenter or other facility, or the modules 821-825 can be distributedacross multiple different locations.

An interface device 840 can be configured for data communication withone or more of the machine module 810, the gateway 805, or the assetcloud computing system 820. The interface device 840 can be used tomonitor or control one or more assets. In an example, information aboutthe first asset community 802 is presented to an operator at theinterface device 840. The information about the first asset community802 can include information from the machine module 810, or theinformation can include information from the asset cloud computingsystem 820. In an example, the information from the asset cloudcomputing system 820 includes information about the first assetcommunity 802 in the context of multiple other similar or dissimilarassets, and the interface device 840 can include options for optimizingone or more members of the first asset community 802 based on analyticsperformed at the asset cloud computing system 820.

In an example, an operator selects a parameter update for the first windturbine 801 using the interface device 840, and the parameter update ispushed to the first wind turbine via one or more of the asset cloudcomputing system 820, the gateway 805, and the machine module 810. In anexample, the interface device 840 is in data communication with theenterprise computing system 830 and the interface device 840 provides anoperation with enterprise-wide data about the first asset community 802in the context of other business or process data. For example, choiceswith respect to asset optimization can be presented to an operator inthe context of available or forecasted raw material supplies or fuelcosts. In an example, choices with respect to asset optimization can bepresented to an operator in the context of a process flow to identifyhow efficiency gains or losses at one asset can impact other assets. Inan example, one or more choices described herein as being presented to auser or operator can alternatively be made automatically by a processorcircuit according to earlier-specified or programmed operationalparameters. In an example, the processor circuit can be located at oneor more of the interface device 840, the asset cloud computing system820, the enterprise computing system 830, or elsewhere.

Returning again to the example of FIG. 8 some capabilities of the firstAMP 800 are illustrated. The example of FIG. 8 includes the first assetcommunity 802 with multiple wind turbine assets, including the firstwind turbine 801. Wind turbines are used in some examples herein asnon-limiting examples of a type of industrial asset that can be a partof, or in data communication with, the first AMP 800.

In an example, the multiple turbine members of the asset community 802include assets from different manufacturers or vintages. The multipleturbine members of the asset community 802 can belong to one or moredifferent asset communities, and the asset communities can be locatedlocally or remotely from one another. For example, the members of theasset community 802 can be co-located on a single wind farm, or themembers can be geographically distributed across multiple differentfarms. In an example, the multiple turbine members of the assetcommunity 802 can be in use (or non-use) under similar or dissimilarenvironmental conditions, or can have one or more other common ordistinguishing characteristics.

FIG. 8 further includes the device gateway 805 configured to couple thefirst asset community 802 to the asset cloud computing system 820. Thedevice gateway 805 can further couple the asset cloud computing system820 to one or more other assets or asset communities, to the enterprisecomputing system 830, or to one or more other devices. The first AMP 800thus represents a scalable industrial solution that extends from aphysical or virtual asset (e.g., the first wind turbine 801) to a remoteasset cloud computing system 820. The asset cloud computing system 820optionally includes a local, system, enterprise, or global computinginfrastructure that can be optimized for industrial data workloads,secure data communication, and compliance with regulatory requirements.

In an example, information from an asset, about the asset, or sensed byan asset itself is communicated from the asset to the data acquisitionmodule 824 in the asset cloud computing system 820. In an example, anexternal sensor can be used to sense information about a function of anasset, or to sense information about an environment condition at or nearan asset. The external sensor can be configured for data communicationwith the device gateway 805 and the data acquisition module 824, and theasset cloud computing system 820 can be configured to use the sensorinformation in its analysis of one or more assets, such as using theanalytics module 822.

In an example, the first AMP 800 can use the asset cloud computingsystem 820 to retrieve an operational model for the first wind turbine801, such as using the asset module 821. The model can be stored locallyin the asset cloud computing system 820, or the model can be stored atthe enterprise computing system 830, or the model can be storedelsewhere. The asset cloud computing system 820 can use the analyticsmodule 822 to apply information received about the first wind turbine801 or its operating conditions (e.g., received via the device gateway805) to or with the retrieved operational model. Using a result from theanalytics module 822, the operational model can optionally be updated,such as for subsequent use in optimizing the first wind turbine 801 orone or more other assets, such as one or more assets in the same ordifferent asset community. For example, information about the first windturbine 801 can be analyzed at the asset cloud computing system 820 toinform selection of an operating parameter for a remotely located secondwind turbine that belongs to a different second asset community.

The first AMP 800 includes a machine module 810. The machine module 810includes a software layer configured for communication with one or moreindustrial assets and the asset cloud computing system 820. In anexample, the machine module 810 can be configured to run an applicationlocally at an asset, such as at the first wind turbine 801. The machinemodule 810 can be configured for use with or installed on gateways,industrial controllers, sensors, and other components. In an example,the machine module 810 includes a hardware circuit with a processor thatis configured to execute software instructions to receive informationabout an asset, optionally process or apply the received information,and then selectively transmit the same or different information to theasset cloud computing system 820.

In an example, the asset cloud computing system 820 can include theoperations module 825. The operations module 825 can include servicesthat developers can use to build or test Industrial Internetapplications, or the operations module 825 can include services toimplement Industrial Internet applications, such as in coordination withone or more other AMP modules. In an example, the operations module 825includes a microservices marketplace where developers can publish theirservices and/or retrieve services from third parties. The operationsmodule 825 can include a development framework for communicating withvarious available services or modules. The development framework canoffer developers a consistent look and feel and a contextual userexperience in web or mobile applications.

In an example, an AMP can further include a connectivity module. Theconnectivity module can optionally be used where a direct connection tothe cloud is unavailable. For example, a connectivity module can be usedto enable data communication between one or more assets and the cloudusing a virtual network of wired (e.g., fixed-line electrical, optical,or other) or wireless (e.g., cellular, satellite, or other)communication channels. In an example, a connectivity module forms atleast a portion of the gateway 805 between the machine module 810 andthe asset cloud computing system 820.

In an example, an AMP can be configured to aid in optimizing operationsor preparing or executing predictive maintenance for industrial assets.An AMP can leverage multiple platform components to predict problemconditions and conduct preventative maintenance, thereby reducingunplanned downtimes. In an example, the machine module 810 is configuredto receive or monitor data collected from one or more asset sensors and,using physics-based analytics (e.g., finite element analysis or someother technique selected in accordance with the asset being analyzed),detect error conditions based on a model of the corresponding asset. Inan example, a processor circuit applies analytics or algorithms at themachine module 810 or at the asset cloud computing system 820.

In response to the detected error conditions, the AMP can issue variousmitigating commands to the asset, such as via the machine module 810,for manual or automatic implementation at the asset. In an example, theAMP can provide a shut-down command to the asset in response to adetected error condition. Shutting down an asset before an errorcondition becomes fatal can help to mitigate potential losses or toreduce damage to the asset or its surroundings. In addition to such anedge-level application, the machine module 810 can communicate assetinformation to the asset cloud computing system 820.

In an example, the asset cloud computing system 820 can store orretrieve operational data for multiple similar assets. Over time, datascientists or machine learning can identify patterns and, based on thepatterns, can create improved physics-based analytical models foridentifying or mitigating issues at a particular asset or asset type.The improved analytics can be pushed back to all or a subset of theassets, such as via multiple respective machine modules 810, toeffectively and efficiently improve performance of designated (e.g.,similarly-situated) assets.

In an example, the asset cloud computing system 820 includes aSoftware-Defined Infrastructure (SDI) that serves as an abstractionlayer above any specified hardware, such as to enable a data center toevolve over time with minimal disruption to overlying applications. TheSDI enables a shared infrastructure with policy-based provisioning tofacilitate dynamic automation, and enables SLA mappings to underlyinginfrastructure. This configuration can be useful when an applicationrequires an underlying hardware configuration. The provisioningmanagement and pooling of resources can be done at a granular level,thus allowing optimal resource allocation.

In a further example, the asset cloud computing system 820 is based onCloud Foundry (CF), an open source PaaS that supports multiple developerframeworks and an ecosystem of application services. Cloud Foundry canmake it faster and easier for application developers to build, test,deploy, and scale applications. Developers thus gain access to thevibrant CF ecosystem and an ever-growing library of CF services.Additionally, because it is open source, CF can be customized for IIoTworkloads.

The asset cloud computing system 820 can include a data services modulethat can facilitate application development. For example, the dataservices module can enable developers to bring data into the asset cloudcomputing system 820 and to make such data available for variousapplications, such as applications that execute at the cloud, at amachine module, or at an asset or other location. In an example, thedata services module can be configured to cleanse, merge, or map databefore ultimately storing it in an appropriate data store, for example,at the asset cloud computing system 820. A special emphasis has beenplaced on time series data, as it is the data format that most sensorsuse.

Security can be a concern for data services that deal in data exchangebetween the asset cloud computing system 820 and one or more assets orother components. Some options for securing data transmissions includeusing Virtual Private Networks (VPN) or an SSL/TLS model. In an example,the first AMP 800 can support two-way TLS, such as between a machinemodule and the security module 824. In an example, two-way TLS may notbe supported, and the security module 824 can treat client devices asOAuth users. For example, the security module 824 can allow enrollmentof an asset (or other device) as an OAuth client and transparently useOAuth access tokens to send data to protected endpoints.

In the example of FIG. 8, it will be understood that the approachesdescribed herein with respect to FIGS. 1-7 may be implemented using theAMP 800 that may be deployed at the first asset community 802, at thewind turbine 801, or in the cloud 820. In one example, the analyzercircuit 114 of FIG. 1 may be deployed at any of these locations andadjust software at the wind turbine 801.

It will be appreciated by those skilled in the art that modifications tothe foregoing embodiments may be made in various aspects. Othervariations clearly would also work, and are within the scope and spiritof the invention. It is deemed that the spirit and scope of thatinvention encompasses such modifications and alterations to theembodiments herein as would be apparent to one of ordinary skill in theart and familiar with the teachings of the present application.

What is claimed is:
 1. A method of optimizing a manufacturing process,the method comprising: analyzing a first part or a first component todetermine results of a manufacturing action on the first part or thefirst component; selectively changing a structure of computer softwareto optimize the results of a manufacturing action, the manufacturingaction being directed by the computer software, the computer softwarebeing stored in a memory and executed by a processor.
 2. A method ofclaim 1, further comprising subsequently performing the manufacturingaction on a second part or second component, the manufacturing actionbeing directed by the computer software having the changed structure. 3.The method of claim 2, further comprising when the results areacceptable, re-setting the structure of the software to its originalstructure.
 4. The method of claim 1, wherein the changing of thestructure is accomplished by changing a computer variable in thestructure.
 5. The method of claim 1, wherein the changing of thestructure is accomplished by adding computer code to the computersoftware.
 6. The method of claim 1, wherein the changing of thestructure is accomplished by deleting computer code from the computersoftware.
 7. The method of claim 1, wherein the manufacturing actioncomprises an action selected from the group consisting of: grinding,milling, measuring, and cutting.
 8. The method of claim 1, furthercomprising determining recommendations for selective changes to thecomputer software and displaying the recommendations to a user.
 9. Themethod of claim 8, further comprising accepting user input as to whetherto accept the recommendation.
 10. The method of claim 1, furthercomprising analyzing the results of the optimized manufacturing actionon the first part or component.
 11. A system, comprising: an industrialmachine that is configured to perform a manufacturing action on a firstpart or first component, the machine including a controller executingcomputer software that directs the manufacturing action; an analyzercircuit that is configured to examine the first part or first componentto determine results of the manufacturing action, the analyzer circuitfurther configured to based upon the results, selectively change astructure of the computer software; wherein the machine is configured tosubsequently perform the manufacturing action on a second part or secondcomponent, the manufacturing action being directed by the computersoftware that has the changed structure.
 12. The system of claim 11,wherein the machine is configured to when the results are acceptable,re-set the structure of the software to its original structure.
 13. Thesystem of claim 11, wherein the structure is changed by modification toa computer variable in the structure.
 14. The system of claim 11,wherein the structure is changed by adding computer code to the computersoftware.
 15. The system of claim 11, wherein the structure is changedby deleting computer code from the computer software.
 16. The system ofclaim 11, wherein the manufacturing action comprises an action selectedfrom the group consisting of: grinding, milling, measuring, and cutting.17. The system of claim 11, wherein the machine determines potentialadjustment recommendations to the computer software and displays therecommendations to a user.
 18. The system of claim 11, furthercomprising a user interface coupled to the machine, the user interfacebeing configured to accept user input as to whether to accept therecommendation.
 19. The system of claim 11, wherein the analyzer circuitis configured to record the results for future usage.